package com.sqs.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sqs.dto.EditPasswordDTO;
import com.sqs.dto.UserEnrollDTO;
import com.sqs.dto.UserLoginDTO;
import com.sqs.dto.UserUpdateDTO;
import com.sqs.entity.User;
import com.sqs.vo.UserLoginVO;

public interface IUserService extends IService<User> {

    /**
     * 新增用户
     * @param userEnrollDTO
     * */
    void insert(UserEnrollDTO userEnrollDTO);

    /**
     * 用户登录
     * @param userLoginDTO
     * @return
     */
    UserLoginVO login(UserLoginDTO userLoginDTO);

    /**
     * 根据id查询用户
     * @param id
     * @return
     * */
    User getById(Long id);

    /**
     * 更改用户密码
     * @param editPasswordDTO
     * */
    void editPassword(EditPasswordDTO editPasswordDTO);

    /**
     * 更改用户启用禁用状态
     * @param id
     * @param status
     * */
    void stopOrStart(Long id, Integer status);

    /**
     * 更新用户信息
     * @param userUpdateDTO
     * */
    void update(UserUpdateDTO userUpdateDTO);

    /**
     * 退出登录
     * */
    void loginOut();
}
